﻿using mini_project.Library.Model;

namespace mini_project.Library.Service;

public interface IItemService {
    /// <summary>
    ///     更改item的content
    /// </summary>
    /// <returns>
    ///     返回的int是修改的条数
    /// </returns>
    /// <author>
    ///     胡海洋
    /// </author>
    Task<int> UpdateContent(int id, string content);

    /// <summary>
    ///     更改item的整数类型的属性，例如status/isDeleted
    /// </summary>
    /// <param name="id">
    ///     item的id
    /// </param> 
    /// <param name="attr">
    ///     属性名，例如status/isDeleted
    /// </param>
    /// <param name="value">
    ///     修改后的值
    /// </param>
    /// <returns>
    ///     返回的int是修改的条数
    /// </returns>
    /// <author>
    ///     胡海洋
    /// </author>
    Task<int> UpdateIntAttr(int id, string attr, int value);

    /// <summary>
    ///     删除表，主要作用是格式化表
    /// </summary>
    /// <returns>
    ///     删除表
    /// </returns>
    /// <author>
    ///     胡海洋
    /// </author>
    Task<int> DeleteTable();

    /// <summary>
    ///     初始化表格数据
    /// </summary>
    /// <returns>
    ///     返回数据是插入的数据条数
    /// </returns>
    /// <author>
    ///     胡海洋
    /// </author>
    Task<int> InitTable();

    /// <summary>
    ///     创建表
    /// </summary>
    /// <returns>
    ///     -1: 创建表失败, 0: 表已存在, 1: 创建表成功
    /// </returns>
    /// <author>
    ///     韩天宇
    /// </author>
    Task<int> CreateTable();

    /// <summary>
    ///     插入一条数据
    /// </summary>
    /// <returns>
    ///     1：插入成功
    /// </returns>
    /// <author>
    ///     韩天宇
    /// </author>
    Task<int> InsertOne(Item item);

    /// <summary>
    ///     插入多条数据
    /// </summary>
    /// <returns>
    ///     返回插入的数据条数
    /// </returns>
    /// <author>
    ///     韩天宇
    /// </author>
    Task<int> InsertAll(List<Item> list);
}